The present invention relates to data communication systems. In particular, the invention relates to a method and system for reliable data transmission in radiocommunication systems which provide for automatic retransmission of incorrectly received data blocks.
In the last decade, progress in radio and VLSI technology has fostered widespread use of radio communications in consumer applications. Portable devices, such as mobile radios, cellular phones, and the like, can now be produced having acceptable cost, size and power consumption for the consumer market.
Although wireless technology is today focused mainly on voice communications (e.g., with respect to handheld cell phones), this field will likely expand in the near future to provide greater information flow to and from various types of portable devices and fixed devices. More specifically, it is likely that further advances in technology will provide very inexpensive radio equipment, which can easily be integrated into many devices. This will allow for further reduction of the number of cables currently used. For instance, radio communication can eliminate or reduce the number of cables used to connect master devices with their respective peripherals.
In order to obtain a link with high data integrity, communication systems apply retransmission schemes to retransmit data blocks that have been received incorrectly by the receiving unit. Numerous automatic retransmission request (ARQ) schemes have been studied in the past; see, for example, the book xe2x80x9cData Networksxe2x80x9d by Bertsekas and Gallager, published by Prentice-Hall, Inc., 1992, ISBN 0-201674-5.
In principle, there are three types of ARQ schemes from which others are derived: the stop-and-wait, the go-back-N, and the selective-repeat ARQ schemes. In the stop-and-wait scheme the next block is only transmitted if the previous segment has been acknowledged. In the go-back-N scheme, N blocks can be sent before the first segment is checked to ensure correct reception. If not, all N segments are retransmitted irrespective of whether they were correctly received or not. In the selective-repeat ARQ scheme, only the segment that failed is retransmitted and the receiver can request specific segments to be retransmitted. For practical reasons, the selective-repeat scheme is usually combined with a go-back-N scheme. The go-back-N and selective-repeat schemes can be optimized if the round-trip delay over the link is known.
The round-trip delay can become quite large in some implementations, for example complex radiocommunication architectures. Add to this the possibility of occasional poor link quality, resulting in high block error rates, and the result is a set of conditions for which it has proven difficult to optimize retransmission schemes in radiocommunication systems.
Consider the following example as illustrated in FIG. 1. During a packet data transfer between a sender 2, e.g., a radio base station in a radiocommunication system, and a receiver 4, e.g., a terminal device in the radiocommunication system, the sender 2 sends data blocks, e.g., in packets A and B, to the receiver 4. The sender 2 also occasionally polls the receiver 4 for an acknowledgement message, e.g., along with packet C. In the response 6 from the receiver 4, some data blocks will be successfully acknowledged (ACKed) in this message, while other data blocks will be negatively acknowledged (NACKed). The sender 2 will retransmit all NACKed blocks. However, there may be a long delay between the time when the sender 2 transmits a polling request and when it receives the corresponding acknowledgement message 6. In fact, if the delay is sufficiently long, the sender 2 may transmit several more polling requests, e.g., polling request 8, before the original acknowledgement message 6 is received.
This has several adverse implications for conventional ARQ schemes. For example, if a data block is lost, the receiver 4 will then receive several polling requests from the sender 2 before it actually receives a retransmission of that block. Therefore, when replying to each polling request, the receiver 4 will NACK the same data block in each acknowledgement message. Each missing data block may therefore be NACKed in several different acknowledgement messages. As a result, it becomes difficult at the sender""s side to decide if an NACKed data block should be retransmitted or not. Those skilled in the art will appreciate that it would be an inefficient utilization of communication resources to retransmit an erroneously received data block several times merely because of a lengthy delay between the transmission of a polling request and the receipt of a corresponding acknowledgement message.
Accordingly, it would be desirable to provide radiocommunication systems and methods with enhanced ARQ schemes which avoid these problems.
It should be emphasized that the terms xe2x80x9ccomprisesxe2x80x9d and xe2x80x9ccomprisingxe2x80x9d, when used in this specification, are taken to specify the presence of stated features, integers, steps or components; but the use of these terms does not preclude the presence or addition of one or more other features, integers, steps, components or groups thereof.
The present invention overcomes the limitations of conventional ARQ schemes by providing an automatic retransmission protocol which links each data block to one polling request in the sender. The acknowledgement message received in reply from the receiver will contain a valid ACK/NACK for that data block. NACKs received in other acknowledgement messages for the same data block can then be ignored by the sender, i.e., redundant retransmissions will not be performed.
More specifically, according to an exemplary embodiment of the present invention, tracking variables NextPollToBeSent and NextAckDue are assigned the same value at the beginning of a packet data transfer. As each polling request is sent, the value of NextPollToBeSent is incremented. As each acknowledgement message is received, the value of NextAckDue is incremented. When a data block is sent, it is assigned the current value of variable NextPollToBeSent. This identifies the next polling request to be sent. The acknowledgement message received in reply will contain a valid ACK/NACK for this block.
The above features and advantages of the invention will be more apparent and additional features and advantages of the invention will be appreciated from the following detailed description of the invention made with reference to the drawings.